package com.xs.designpattern;

import lombok.extern.slf4j.Slf4j;

/**
 * 兽人指挥官
 *
 * @author xs
 */
@Slf4j
public class OrcCommander implements RequestHandler {
    /**
     * 限制请求处理的类型为DEFEND_CASTLE
     *
     * @param req 请求 请求
     * @return 是否可用处理该请求
     */
    @Override
    public boolean canHandleRequest(Request req) {
        return req.getRequestType() == RequestType.DEFEND_CASTLE;
    }

    /**
     * 获取处理请求的优先级
     *
     * @return 优先级
     */
    @Override
    public int getPriority() {
        return 2;
    }

    /**
     * 进行处理请求
     *
     * @param req 请求
     */
    @Override
    public void handle(Request req) {
        req.markHandled();
        log.info("{} 处理请求 \"{}\"", name(), req.getRequestDescription());
    }

    /**
     * 处理请求的人
     *
     * @return 处理的人
     */
    @Override
    public String name() {
        return "兽人指挥官";
    }
}
